package Modelo;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the usuario database table.
 * 
 */
@Entity
@NamedQuery(name="Usuario.findAll", query="SELECT u FROM Usuario u")
public class Usuario implements Serializable {
	private static final long serialVersionUID = 1L;

	@EmbeddedId
	private UsuarioPK id;

	private String apellido;

	private String correro;

	private int estado;

	private String nombre;

	private String password;

	private String usuario;

	//bi-directional many-to-one association to Departamento
	@ManyToOne
	private Departamento departamento;

	//bi-directional many-to-many association to Sala
	@ManyToMany
	@JoinTable(
		name="usuario_has_sala"
		, joinColumns={
			@JoinColumn(name="usuario_departamento_iddepartamento", referencedColumnName="departamento_iddepartamento"),
			@JoinColumn(name="usuario_idusuario", referencedColumnName="idusuario"),
			@JoinColumn(name="usuario_perfil_idperfil", referencedColumnName="perfil_idperfil")
			}
		, inverseJoinColumns={
			@JoinColumn(name="sala_idsala")
			}
		)
	private List<Sala> salas;

	//bi-directional many-to-one association to Perfil
	@ManyToOne
	private Perfil perfil;

	public Usuario() {
	}

	public UsuarioPK getId() {
		return this.id;
	}

	public void setId(UsuarioPK id) {
		this.id = id;
	}

	public String getApellido() {
		return this.apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	public String getCorrero() {
		return this.correro;
	}

	public void setCorrero(String correro) {
		this.correro = correro;
	}

	public int getEstado() {
		return this.estado;
	}

	public void setEstado(int estado) {
		this.estado = estado;
	}

	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getUsuario() {
		return this.usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public Departamento getDepartamento() {
		return this.departamento;
	}

	public void setDepartamento(Departamento departamento) {
		this.departamento = departamento;
	}

	public List<Sala> getSalas() {
		return this.salas;
	}

	public void setSalas(List<Sala> salas) {
		this.salas = salas;
	}

	public Perfil getPerfil() {
		return this.perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}

}